package com.zpark.se.lambda;

/**
 * Lambda表达式：函数式编程接口
 */
public class Demo01{

    public static void main(String[] args) {
        // 通过匿名内部类的方式创建接口实现类的对象
        IStudentDao isd = new IStudentDao() {
            @Override
            public int max(int a, int b) {
                return a > b ? a : b;
            }
        };

        /*
            lambda表达式语法：
                使用箭头 -> 将函数式接口的抽象方法实现，简化匿名内部类
                箭头左侧为接口当中函数的参数列表，右侧为函数式接口的函数体
                注意：
                    当函数体只有一句话的时候可以省略大括号，并且可以省略return
                    当参数列表没有参数的时候，参数列表中需要有空格
                    参数列表当中的参数名不要求与接口当中方法参数名一致
         */
        // lambda表达式形式
        IStudentDao isd1 = (a1, b1) -> a1 > b1 ? a1 : b1;
    }
}
